package com.baichang.taoshunda.service;

import com.baichang.framework.excelption.ServiceException;
import com.baichang.framework.model.Page;

import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface CashService {

    /**
     * 根据商家编号获取商家提现记录
     *
     * @param bussinessId 商家编号
     * @return
     */
    List<Map<String, Object>> findCashHistoryByBussinessId(Integer bussinessId);

    /**
     * 查看商家提现列表
     *
     * @param bussId 商家编号
     * @return
     */
    List<Map<String, Object>> findCashList(Integer bussId);

    /**
     * 商家提现
     *
     * @param bussId     商家编号
     * @param bankCardId 银行卡编号
     * @param money      提现金额
     * @return
     */
    boolean cash(Integer bussId, Integer bankCardId, Double money) throws ServiceException;

    /**
     * 商家提现列表  busscashQuery
     */
    Page<Map<String, Object>> busscashQuery(int nowPage, int pageSize, String bussName, String startTime, String endTime, int cashstatus, int companyId) throws ServiceException;


    /**
     * 商家提现列表的导出  busscashQueryExport
     *
     * @param response
     */

    String busscashQueryExport(HttpServletResponse response, String ids) throws ServiceException;

    /**
     * 提现审核通过与审核失败
     */
    boolean audit(int id, int state, String auditPersonName, String auditReason, Integer companyId, BigDecimal money, Integer deliveryId) throws ServiceException;

    /**
     * 配送员 商家提现列表
     */
    Page<Map<String, Object>> delivercashQuery(int nowPage, int pageSize, String bussName, String startTime, String endTime, int cashstatus, int companyId) throws ServiceException;

    /**
     * 配送员提现列表的导出
     *
     * @param response
     */

    String delivercashQueryExport(HttpServletResponse response, String ids) throws ServiceException;

    /**
     * 提现列表的查询  indexQuery
     */
    Page<Map<String, Object>> indexQuery(int nowPage, int pageSize, String bussName, int cashstatus, String startTime, String endTime, String checkBusinessName, String checkDeliveryName) throws ServiceException;

    /**
     * 查看配送员的提现记录
     *
     * @param disId
     * @return
     */
    List<Map<String, Object>> findCashHistoryByDisId(Integer disId);

    /**
     * 提现列表
     *
     * @param disId   配送员编号
     * @param nowPage 当前页
     * @param i       @return
     */
    List<Map<String, Object>> findDeliveryCashList(Integer disId, Integer nowPage, int i);

    /**
     * 提现
     *
     * @param disId      配送员
     * @param bankCardId 银行卡编号
     * @param money      钱数
     * @return
     */
    boolean cashByDelivery(Integer disId, Integer bankCardId, Double money) throws ServiceException;

    /**
     * 查看账单
     *  @param disId 配送员编号
     * @param startTime  时间
     * @param endTime
     * @param nowPage
     * @param pageSize @return
     */
 Map<String, Object> blanceList(Integer disId, String startTime, String endTime, Integer nowPage, int pageSize) throws ServiceException;
}
